package com.xyy.service;

import com.xyy.common.PageResult;
import com.xyy.dto.PushCommentDTO;
import com.xyy.dto.PushLikeDTO;

import com.xyy.vo.PushCommentVO;
import com.xyy.vo.UserPushVO;

import java.util.List;

/**
 * 用户端推文服务接口
 */
public interface UserPushService {



    /**
     * 获取所有推文列表（分页）
     */
    PageResult<UserPushVO> getPushList(Integer current, Integer size, Long userId);

    /**
     * 根据ID查询推文详情
     */
    UserPushVO getPushById(Long pushId, Long userId);

    /**
     * 点赞推文
     */
    void likePush(PushLikeDTO likeDTO);

    /**
     * 取消点赞推文
     */
    void unlikePush(PushLikeDTO likeDTO);

    /**
     * 添加评论
     */
    void addComment(PushCommentDTO commentDTO);

    /**
     * 删除评论
     */
    void deleteComment(Long commentId, Long userId);

    /**
     * 分页查询推文评论
     */
    PageResult<PushCommentVO> getComments(Long pushId, Integer current, Integer size, Long userId);

    /**
     * 获取推文的所有评论
     */
    List<PushCommentVO> getAllComments(Long pushId, Long userId);

    /**
     * 点赞评论
     */
    void likeComment(Long commentId, Long userId);

    /**
     * 取消点赞评论
     */
    void unlikeComment(Long commentId, Long userId);

    /**
     * 查询用户点赞的推文列表
     */
    PageResult<UserPushVO> getLikedPushes(Long userId, Integer current, Integer size);
}
